package com.rq.base.ui.impl;

import android.app.Activity;

import com.rq.base.net.RequestType;
import com.rq.base.ui.BaseController;

import java.io.Serializable;

public interface WelcomeImpl extends Serializable {
    /**
     * @return 更新地址,为空则不自动更新
     */
    String getUpdatePath();

    /**
     * <=0 不自动跳转
     *
     * @return
     */
    long getAutoSkipTime();

    /**
     * @return the latest application's name,will append ".apk" automatically
     */
    String getNetVersionName();

    /**
     * 弹窗内容
     *
     * @return the dialog message to show which updates
     */
    String getVersionDescribe();

    /**
     * @return 是否强制更新
     */
    boolean isCancelAble();

    /**
     * 更新 判断条件
     * Whether to check for updates
     * if true ,the next param can't be null:
     *
     * @param type
     * @param data 为空 接口返回错误
     * @return
     * @see #isCancelAble()
     * @see #getUpdatePath()
     * @see #getVersionDescribe()
     * Of course ,you won't get Network info if you haven't used some medth
     */
    boolean isSkipData(BaseController controller, RequestType type, Object data);

    void skip(BaseController view);

    void init(BaseController view);

    int getLayoutId();

//    /**
//     * @param option 0-中文 1-英文 2-俄文 3-日文 4-韩文
//     */
//    void setBackLanInfo(int option);

    void clickDownload(Activity context, String updatePath, String s);
}
